v4.0
キャラクタ リギング
胸のコントロール、ヒップのコントロール、胸のデプス、ヒップのデプスの 4
つのオブジェクトから、クォータニオンまたはスケルトンのスパインを作成します。 4 つのオブジェクトは、トレースする椎に沿った 4
ポイントのベジェ カーブを定義します。 スケルトン スパインでは椎はボーンで、クォータニオン
スパインでは椎はインプリシットまたはポリゴンの立方体です。 クォータニオン スパインでは、これら 4
つのオブジェクトはスパインのカーブも制御します(各オブジェクトがカーブのコントロール ポイントの 1 つを制御します)。
必要に応じて、腕にシャドウ リグをアタッチすることができます。 シャドウ オブジェクトは腕の各チェイン
エレメントに対して作成され、シャドウ ボーンは実際の腕のボーンにポーズで拘束されます。 シャドウ
リグはリグのアニメーションをプロットする際に使用できます。
oSpine = MakeSpine( Model, Parent, [NbVertebrae], [SpineType], [Stretchy], SpineBaseObject, SpineTopObject, [BottomDepthObject], [TopDepthObject], [ChestTop], Sliders, [ShadowType], [ShadowParent], [VertebraeName], [CharacterSetName], [ShadowCharacterSetName] ); |
Spine JScript オブジェクトを戻します。
| パラメータ | タイプ | 詳細 | ||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Model | 文字列 | スパインが所属するモデル。 | ||||||||||||
| Parent | 文字列 | スパインの親となるオブジェクト。 | ||||||||||||
| NbVertebrae | Integer | スパイン上の椎の数。
デフォルト値: 3 |
||||||||||||
| SpineType | Integer | スパインのタイプと使用するコントロール オブジェクト。
デフォルト値: 0
|
||||||||||||
| Stretchy | ブール | 長さを固定しない、ストレッチ可能なスパインを作成します。
デフォルト値: True |
||||||||||||
| SpineBaseObject | 文字列 | スパインの最下部。スパインのパス上で y+ をポイントするオブジェクトです。 | ||||||||||||
| SpineTopObject | 文字列 | スパインの最上部。カーブから y+ をポイントするオブジェクトです。 | ||||||||||||
| BottomDepthObject | 文字列 | スパインを貫く 4 ポイントのベジェの終点。 空の場合には、自動的に計算されます。 | ||||||||||||
| TopDepthObject | 文字列 | スパインを貫く 4 ポイントのベジェの終点。 空の場合には、自動的に計算されます。 | ||||||||||||
| ChestTop | 文字列 | (オプション)胸の終端の最上部。 値を入力すると、スパインの最上部をリファレンスのみとして使用し、spineTop から chestTop のアイコンを構築します。 空の場合には、スパインの上部にはアイコンが作成されず、インプリシットの立方体のみが使用されます。 | ||||||||||||
| Sliders | 文字列 | スパイン パラメータを配置するスライダの PPG。 何も指定しないと、スパイン カーブにスライダ ページが追加されます。 | ||||||||||||
| ShadowType | Integer | スパインにアタッチするシャドウ リグのタイプ。 シャドウ リグは、アニメーションを転送または再マップするために使用します。
デフォルト値: 0
|
||||||||||||
| ShadowParent | 文字列 | シャドウ リグ階層の親。 空の場合には、シャドウ リグは作成されません。 | ||||||||||||
| VertebraeName | 文字列 | 椎に使用する必要のある名前。
デフォルト値: "" |
||||||||||||
| CharacterSetName | 文字列 | このチェインで使用する必要があるキャラクタ セットの名前。カスタム プロパティ セットに保存されて使用されます。
デフォルト値: "" |
||||||||||||
| ShadowCharacterSetName | 文字列 | このチェインで使用する必要があるシャドウ キャラクタ セットの名前。カスタム プロパティ セットに保存されて使用されます。
デフォルト値: "" |
/*
Makes a spine with 3 vertebrae
*/
var Base = GetPrim("Null", "Base");
var Top = GetPrim("Null", "Top");
var Depth = GetPrim("Null", "Depth");
var TopDepth= GetPrim("Null", "TopDepth");
var lXfm = XSIMath.CreateTransform();
lXfm.SetTranslationFromValues(0,0,0);
Base.Kinematics.Global.Transform = lXfm;
lXfm.SetTranslationFromValues(0,8,0);
Top.Kinematics.Global.Transform = lXfm;
lXfm.SetTranslationFromValues(0,2,0);
Depth.Kinematics.Global.Transform = lXfm;
lXfm.SetTranslationFromValues(0,6,0);
TopDepth.Kinematics.Global.Transform = lXfm;
var Spine = MakeSpine( ActiveSceneRoot, //model
ActiveSceneRoot, //parent
3, //number of vertebrae
0, //quat spine with polygon vertebrae
false, //non-stretchy
Base, Top,
Depth,TopDepth);
DumpSpine(Spine);
function DumpSpine(inSpine)
{
logmessage ("Data in the returned spine object:");
logmessage ("----------------------------------");
logmessage ("Curve : " + inSpine.Curve);
logmessage ("TopVertebra : " + inSpine.TopVertebra);
if(inSpine.Shadows)
{
logmessage ("#ShadowObj : " + inSpine.Shadows.count);
for(var b=0; inSpine.Shadows && b<inSpine.Shadows.count;b++)
{logmessage (" Shadow" + b + ": " + inSpine.Shadows(b));}
}
logmessage ("#ShadowObj : " + 0);
logmessage ("#EnvelopeObj: " + inSpine.Envelope.count);
for(var b=0;b<inSpine.Envelope.count;b++)
{logmessage (" EnvelopeObj" + b + ": " + inSpine.Envelope(b));}
logmessage ("#Vertebrae : " + inSpine.Vertebra.count);
for(var b=0;b<inSpine.Vertebra.count;b++)
{logmessage (" Vertebra" + b + ": " + inSpine.Vertebra(b));}
}
//result of running this script
//INFO : "Data in the returned spine object:"
//INFO : "----------------------------------"
//INFO : "Curve : crvlist2"
//INFO : "TopVertebra : TopVertebra2"
//INFO : "#ShadowObj : 0"
//INFO : "#EnvelopeObj: 4"
//INFO : " EnvelopeObj0: TopVertebra2"
//INFO : " EnvelopeObj1: Vertebra6"
//INFO : " EnvelopeObj2: Vertebra7"
//INFO : " EnvelopeObj3: Vertebra8"
//INFO : "#Vertebrae : 3"
//INFO : " Vertebra0: Vertebra6"
//INFO : " Vertebra1: Vertebra7"
//INFO : " Vertebra2: Vertebra8"
|